More and more browser based applications are incorporated in modern enterprise computing. Typically, a browser updates its application state, such as a business process view, from a corresponding server based on a user's request. Recent advancements of browser capabilities, such as the adoption of RIA (Rich Internet Application) technology, has made it possible for a browser to automatically synchronize its application state with a backend server without requiring explicit requests from a user. Hence, the interaction between a browser user and the browser does not need to be blocked while application states are being synchronized. Usually, a script-based timer is utilized to trigger periodic requests and responses from inside the browser using a hidden HTTP (Hypertext Transport Protocol) communication channel.
FIG. 1 is a timing diagram illustrating an example of the timer based state synchronization in browser based applications. When a state synchronization request 101 is triggered by end users through a user interface in a browser based application 103, a script-based timer 105 is usually initialized with a timer value to make periodic requests and responses with server side actions 109 in an ongoing manner (e.g. looping) 111. A browser based hidden communication channel using HTTP 107 may be set up to update the browser user interface 117 with the latest state data carried in the responses. A business object 113 may be called to retrieve the latest state data from a data source 115 when a request is received at the server.
However, the timer based communication channel sends back nearly the same amount of data between a browser and a server periodically regardless whether the application state in the browser is synchronized with the server or not. Obviously, such a method is inefficient in many cases especially when the application state does not change that often.
In addition, computing processing power and network transportation capacity may be wasted due to large number of unnecessary requests and responses between a browser and a server. Often times, handling transactions of such a hidden communication channel also increases the response latency for a user to interact with a browser. Usually, the tighter the synchronization requirement is, the larger the number of such transactions is needed, even when there is little change to update from a server.